package br.sc.senai.control.managedbeans;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;


import br.sc.senai.model.dao.EntitiesDAO;
import br.sc.senai.model.entity.Marca;
import br.sc.senai.model.exception.EntitiesDAOExcption;

/**
 * 
 * @author Dhyego Pedroso
 * @19/06/2013
  */

@ManagedBean(name = "MarcaMB")
@SessionScoped
public class MarcaMB<T> {

	EntitiesDAO<Marca> marcadao;

	private Marca marca = new Marca();
	
	public void TwTeste(){
		System.out.print("marca = "+marca.getNome());
	}

	
	//Inserir objeto
	public boolean Insert() {

		boolean ok = false;
		try {
			marcadao.add(marca);
			ok = true;
		} catch (EntitiesDAOExcption e) {
			ok = false;
			System.out.println("Erro linha 40 "+ok);
			e.printStackTrace();
		}

		return ok;
	}
	
	//Retorna um objeto pelo ID
	public Marca getById(int id){
		
		Marca marca = new Marca();
		
		try {
			marca = marcadao.getById(id);
		} catch (EntitiesDAOExcption e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return marca;
		
	}
	
	//Altera os atributos de um objeto.
	public boolean Alter(){
		
		boolean ok = false;
		
		try {
			marcadao.update(marca);
			ok = true;
		} catch (EntitiesDAOExcption e) {
			ok = false;
			e.printStackTrace();
		}
		return ok;
	}
	

	//Retorna uma lista com todos Objetos
	public List<Marca> LoadAllMarcas() {

		List<Marca> retorno = null;

		try {
			retorno = marcadao.loadAll();
		} catch (EntitiesDAOExcption e) {
			e.printStackTrace();
		}
		return retorno;
	}
	
	
	//Deleta um objeto passando o objeto inteiro.
	public boolean Del(){
		
		boolean ok = false;
		
		try {
			marcadao.delete(marca);
			ok = true;
		} catch (EntitiesDAOExcption e) {
			ok = false;
			e.printStackTrace();
		}
		
		return ok;
	}

	
	
	
	public Marca getMarca() {
		return marca;
	}

	public void setMarca(Marca marca) {
		this.marca = marca;
	}

}